import { createStore, Store, useStore as useVuexStore } from 'vuex'
import type { IRootState, IStoreType } from './type'
import loginModule from './login/login'
import systemModule from './main/system/system'

const store = createStore<IRootState>({
  state() {
    return {
      name: '张卓毅',
      age: 18
    }
  },
  mutations: {},
  actions: {},
  modules: { loginModule, systemModule }
})
//解决用户刷新浏览器导致vuex里的数据丢失
export function steupStore() {
  store.dispatch('loginModule/LoadLocalLogin')
}
//封装一个自己的useStore 到时候用useStore的时候用自己的 在这里我可以给我的返回值加上类型限制
export function useStore(): Store<IStoreType> {
  return useVuexStore()
}
export default store
